<template>
  <div>
    <van-pull-refresh v-model="isLoading" @refresh="onRefresh">
      <ul>
        <li v-for="item in goodsList" :key="item.id" @click="goToDetail(item.id)">
          <img v-lazy="item.list_pic_url" alt="" width="100%" style="display: block;">
          <div class="title">{{item.name}}</div>
          <div class="price">{{item.retail_price | filtermoney}}</div>
        </li>
      </ul>
    </van-pull-refresh>

  </div>
</template>

<script>
export default {
  name: 'Product',
  data() {
    return {
      isLoading: false
    }
  },
  props: ['goodsList'],
  methods: {
    // 跳转到商品详情页
    async goToDetail(id) {
      await this.$router.push('/productdetail/' + id)
      // 页面刷新，因为在相关产品点击后也需要跳转到这个路由，此时路由已经是productdetail了，路由不变，变化的只是后边的id，所以vuerouter不会在跳转页面，但是浏览器地址栏上的地址已经变化了，所以在这儿要强制刷新一下页面，而且要用async和await
      // 在productdetail中实现，因为点击相关产品后，再返回应该回到刚才的商品详情页面，所以在productdetail组件中进行watch监测，监测路由path的变化，如果一变化就刷新一下页面，所以下边this.$router.go(0)写就不要在写了，如果写了那用户在商品详细页面，如果点击相关产品和当前产品一样的话，页面还会跳转。
      // await this.$router.go(0);
    },
    onRefresh() {
      setTimeout(() => {
        this.isLoading = false
      },1000)
    }
  }
}
</script>

<style lang="less" scoped>
ul {
  background-color: #efefef;
  padding: .1rem 2%;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  li {
    width: 49%;
    background-color: #fff;
    text-align: center;
    line-height: .3rem;
    margin-bottom: .1rem;
    .title {
      // 最多显示一行的文字，多余的内容会被省略
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .price {
      color: darkred;
    }
  }
}
</style>